package com.yh.correct.service;

import java.util.List;
import java.util.Map;

import com.github.pagehelper.PageInfo;
import com.yh.correct.model.Accomplice;
import com.yh.correct.model.CorrectedPerson;
import com.yh.correct.model.FileAttachments;
import com.yh.correct.model.JudicialDeptment;
import com.yh.correct.model.Page;
import com.yh.correct.model.SocialRelations;

/**
 * 作者:王卫
 * 创建时间:2017-03-07
 * 描述:矫正人员接口服务
 */
public interface ICorrectedPersonService {
	/**
	 * 查询单个矫正人员明细
	 */
	CorrectedPerson getCorrectedPerson(CorrectedPerson correctedperson) throws Exception;
	/**
	 * 增加入矫人员信息
	 */
	int addCorrectedPerson(CorrectedPerson correctedperson) throws Exception;
	/**
	 * 删除入矫人员信息
	 */
	int delCorrectedPerson(CorrectedPerson correctedperson) throws Exception;
	/**
	 * 根据ID删除矫正人员全部信息
	 */
	void delAll(CorrectedPerson correctedperson) throws Exception;
	/**
	 * 增加矫正人员全部信息
	 */
	void addAll(CorrectedPerson correctedperson,List<SocialRelations> socilist,List<Accomplice> accolist,List<FileAttachments> filelist) throws Exception;
	/**
	 * 修改矫正人员全部信息
	 */
	void editAll(CorrectedPerson correctedperson,List<SocialRelations> socilist,List<Accomplice> accolist,List<FileAttachments> filelist) throws Exception;
	/**
	 * 修改入矫人员信息
	 */
	int editCorrectedPerson(CorrectedPerson correctedperson) throws Exception;
	/**
	 * 获取所有记录,导出excel
	 * @return
	 */
	List<Map<String,Object>> getAllCorrectedPerson();
	/**
	 * 导出excel 
	 */
	List<CorrectedPerson> findCorrectedPerson() throws Exception;
	/**
	 * 模糊分页+动态分页查询矫正人员结果集
	 */
	Page getCorrectedPersonByPage(Map<String,Object> map) throws Exception;
	/**
	 * 修改矫正人员,传值map
	 */
	int updateCorrectedPerson(Map<String,Object> map) throws Exception;
	/**
	 *批量删除矫正人员 
	 */
	void deleteBatch(List<Integer>temp) throws Exception;
	/**
	 * 执行类别
	 */
	List<String> findType() throws Exception;
	/**
	 * 犯罪类别
	 */
	List<String> findCrimeTypes() throws Exception;
	/**
	 * 原判期刑
	 */
	List<String> findSentenceDate() throws Exception;
	/**
	 * 根据ID查询所有入矫人员及矫正单位,社会关系,同案犯,档案附件
	 */
	Map<String,Object> getAll(CorrectedPerson correctedperson) throws Exception;
	/**
	 * 获取所有矫正单位
	 * @return
	 */
	List<JudicialDeptment> getAllUnit();
	/**
	 * 根据ID查询矫正单位 
	 * @return
	 */
	JudicialDeptment getUnitById(int jid);
	/**
	 * 根据id获取矫正人员及其矫正单位
	 */
	Map<String,Object> getCorrectedPersonById(int id) throws Exception;
	/**
	 * 根据司法所查找矫正人员,也可以查找所有矫正人员
	 */
	List<Map<String,Object>> getAllCorrectedPersonnel(Integer jid) throws Exception;
	/**
	 * 模糊查询,分页
	 */
	Page getLikeCorrectedPerson(Map<String,Object> condition) throws Exception;

	PageInfo<Object> getPersion(Map<String, Object> map) throws Exception;

	/**
	 * 查询单个矫正人员明细 comcn155
	 */
	CorrectedPerson getCorrectedPersonC(CorrectedPerson correctedperson) throws Exception;
}
